Jump To:
Technical Q&As: Carbon
The Human Interface Toolbox is an object-oriented C API for implementing user interfaces, available in Mac OS X v10.2 and later. Controls, windows, and menus are subclassed from the HIObject base class or the HIView subclass; the HIObject object acts as the data store (instance), and Carbon event handlers are the methods. The standard toolbox managers (Window Manager, Control Manager, and so on) work seamlessly with this new model, while its object-oriented nature makes it much easier to create custom user interface elements.

Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Date
My custom item dismisses my Navigation Services dialog (HTML)
QA1381: Gives a workaround for dismissive clicks on items in the custom area of Navigation Services dialogs.
2004-11-22
Private HITheme APIs in Mac OS X 10.2 should not be called (HTML)
QA1377: Explains why weak-linked API common runtime check is not good enough for the HITheme APIs.
2004-10-27
Enabling the Navigation Services default behavior in its dialogs (HTML)
QA1384: Explains how to enable the default behavior of the Navigation Services dialogs.
2004-10-15
Fixing the Layout Binding of the Tab control User Panes (HTML)
QA1161: Describes the Tab control hierarchy and layouts of its panes and provides a fix to a common problem.
2004-10-14
Managing custom drawing code in a compositing world (HTML)
QA1162: Explains why any custom drawing code must be handled by the kEventControlDraw handler of a custom HIView
2004-10-14
Clickable Static Text Item (HTML)
QA1380: Explains how to make a static text item respond to clicks
2004-10-05
SetFontInfoForSelection incorrect prototype (HTML)
QA1375: Describes the incorrect prototyping of the SetFontInfoForSelection API and gives a workaround.
2004-10-04
X11 FAQ (HTML) ()
QA1232: Frequently Asked Questions about using Apple's X Window System (X11) implementation.
2003-11-17
Why doesn't my Scrolling Text Box control work in a compositing window? (HTML)
QA1324: Explains why some older controls do not function properly in compositing windows and points to a replacement.
2003-11-13
Why isn't my edit text box in my Navigation dialog's custom area working on 10.3? (HTML)
QA1315: Explains a bug in the Mac OS X 10.3 Navigation Services Custom Area involving the EditText and its work around.
2003-10-28
Filtering QuickTime media types in Navigation Services (HTML) ()
QA1274: Describes how to filter QuickTime media types in a Navigation Services filter procedure.
2003-07-23
The Data Browser GetDataBrowserUserState API (HTML) ()
QA1270: Explains a problematic Data Browser API definition and how to work around it.
2003-07-22
Notifying the Finder of changed or newly created files (HTML) ()
QA1260: Recommended approach to notifying the Finder to update its open windows of a file creation or change.
2003-04-15
Can I have parameters of type typeHIRect instead of type typeQDRectangle in my kEventControlBoundsChanged message handler? (HTML) ()
QA1246: Details the automatic coercions between QuickDraw and Quartz types provided by the Carbon Event Parameter accessors.
2003-04-03
Are the root control, the root view, and the content view the same entity? (HTML) ()
QA1214: Details the differences and similitudes between the root control, the root view, and the content view of windows.
2002-11-12
CGContext parameter missing in my kEventControlDraw event (HTML) ()
QA1212: Explains in which case your kEventControlDraw handler wouldn't receive a CGContext parameter.
2002-11-12
CreateStaticTextControl fails with paramErr (HTML) ()
QA1211: Explains why CreateStaticTextControl fails with a paramErr in compositing windows and gives a work around.
2002-11-12
Do I have to call CreateRootControl after creating my window? (HTML) ()
QA1215: Explains when and when not to call CreateRootControl after creating a window.
2002-11-12
HIObjectRegisterSubclass returns paramErr (HTML) ()
QA1213: Explains in which case HIObjectRegisterSubclass would return paramErr and gives a work around.
2002-11-12
What is the minimal set of Carbon Events I need to override in order to implement a simple custom push button? (HTML) ()
QA1210: Details the minimal set of Carbon Events needed to implement a simple custom push button HIView.
2002-11-12
Process Carbon Events Not Delivered in 10.2 (HTML) ()
QA1181: Work around for a bug in Mac OS X 10.2 that prevents the delivery of process Carbon events.
2002-08-27
Resource forks in Mach-O binaries (HTML) ()
QA1175: Advises against using resource forks in Mach-O binaries.
2002-08-07
Using Navigation Services to filter QuickTime files (HTML) ()
QA1152: Using the CanQuickTimeOpenFile function in a Navigation Services filter to display files that QuickTime can open.
2002-07-15
My ListBox control works fine on Mac OS X but I get a crash on Mac OS 9 when I click in the scrollbar (HTML) ()
QA1156: Explains the requirements for the use of the Listbox Control on Mac OS 9 and Mac OS X.
2002-07-12
How can I set the default location with the modern Navigation APIs NavCreatexxx? (HTML) ()
QA1151: Explains how to set the default location with a NavCustomControl call using the kNavCtlSetLocation message in the Event Proc.
2002-07-01
Why isn't my Static Text Control deactivating when my other controls are? (HTML) ()
QA1125: Explains why a Static Text Control is not deactivating when the other controls are.
2002-03-11
Adding an automated Window menu to your application (HTML)
QA1080: Explains how to add an automated Window menu to your Carbon application.
2001-10-30
Enabling the application menu's "Preferences..." menu item on Mac OS X (HTML)
QA1079: Explains how to enable the application menu's "Preferences..." menu item on Mac OS X.
2001-10-30
The intermittent behavior of SetDialogItemText (HTML)
Deprecated - QA1082: Explains why SetDialogItemText may seem to not work correctly if you have embedding turned on.
2001-10-30
Installing input methods on Mac OS X (HTML)
QA1054: Describes how to install and use input methods on Mac OS X.
2001-09-14
Menus & Hardware Accelerated OpenGL under Mac OS 9 Carbon (HTML)
QA1042: Explains how to handle correctly Mac OS 9 menus when there is hardware accelerated OpenGL blitting.
2001-07-10
QDFlushPortBuffer (HTML) ()
QD65: Describes a possible solution for window update problems under Carbon.
2000-11-08
Appearance Versions (HTML) ()
TB39: Explains how to retrieve the Appearance Manager version and verify the compatibility with the Mac OS version.
2000-07-15
Setting a UserPane's feature (HTML) ()
TB64: Explains how to set up the control attributes when creating controls, and UserPanes in particular.
1999-09-27
Setting a Control's Variant Field (HTML) ()
Deprecated - TB63: Details how to change the variant of a custom control after creating the control.
1999-05-03
The Initialize Method of Multi-fragment Contextual Menu Plug-ins (HTML) ()
TB60: Explains how to deal with multiple Contextual Menu plug-ins code fragments.
1999-04-05
Styled Custom Dialog Items Under Nav Services (HTML) ()
TB58: Describes how to customize the font characteristics of custom items in a NavPutFile dialog.
1999-01-11
Bypassing AppendMenu's Meta-character Processing (HTML) ()
TB56: Explains how to bypass AppendMenu's meta-character processing and how to use AppendMenuItemText instead.
1998-12-22
Changing Menu Titles (HTML) ()
TB47: Explains how to change a menu's title after its insertion into the menu bar.
1998-12-22
Drag Manager: Promising and Tracking (HTML) ()
TB43: Explains why you cannot always obtain the promised flavor data in your drag tracking handler.
1998-12-22
Expanding the Set of Menu Item Modifier Keys (HTML) ()
TB53: Explains how to use the shift and option keys with the menu command keys.
1998-12-22
Moving the Menu Bar (HTML) ()
Deprecated - TB54: Describes how to move the menubar to another Macintosh Display and why this move is unadvisable.
1998-12-22
Pop-up Menu CDEFs: The Real Story (HTML) ()
TB42: Explains why you should never allow the pop-up menu CDEFs to create a menu for you.
1998-07-30
Multiple Resources with the Same Type and ID (HTML) ()
TB30: Explains why Resource IDs should be unique within a given resource type within a given resource file.
1996-11-27
How PBDTGetAPPL Chooses Which Copy of an App to Launch (HTML) ()
Deprecated - TB19: Explains how PBDTGetAppl() chooses which application copy to launch, and how to deal with the trash.
1996-05-14
Using the Wide Routines in <FixMath.h> (HTML)
TB14: Details the Wide routines listed in the FixMath.h header (WideDivide, WideCompare, WideBitShift, WideShift, etc.).
1995-06-01